////////////////////////////////////////////////////////////////
///
/// File: SimpleTmpExp.h
/// Author: Lucio Davide Spano
/// Last update: 17 August 2012
/// Description: This class represent a generic ground term.
///              It is possible to define a concrete one
///              implementing a delegate class (ExpContent)
/// To do:
/// ------------------------------------------------------------
/// Copyright (c) 2012 Lucio Davide Spano
///                     (lucio.davide.spano@isti.cnr.it)
///
/// The use and distribution terms for this software are
/// contained in the file named license.txt, which can be found
/// in the root of this distribution.
/// By using this software in any fashion, you are agreeing to
/// be bound by the terms of this license.
///
/// You must not remove this notice, or any other, from this
/// software.
/// ------------------------------------------------------------
////////////////////////////////////////////////////////////////

#import "TmpExp.h"

@class ExpContent, ExpEventArgs;

@interface SimpleTmpExp : TmpExp

@property (retain) ExpContent *content;
@property (retain) Token *token;

- (id) initWithContent:(ExpContent*) content;
- (bool) accepts:(ExpEventArgs*) args;
- (bool) consume:(ExpEventArgs*) args;
- (void) notAccepted:(ExpEventArgs*) args;
- (void) invalidate:(ExpEventArgs*) args;
- (void) setExecState:(int)state :(Token *)token;

@end
